/******************************************************
Cours:   LOG121
Session: A2013
Groupe:  04
Projet: Laboratoire #4
Étudiant(e)s: Fredy Alexander Bonilla, Renaud Vincent, Simon Castro
                            
Professeur : Francis Cardinal
Nom du fichier: Fenetre.java
Date créé: 2013-11-22
Date dern. modif. 2013-11-26
*******************************************************
Historique des modifications
*******************************************************
2013-11-22 Version1
2013-11-
*******************************************************/  

import java.awt.BorderLayout;
import java.awt.Dimension;


import javax.swing.JFrame;

/**
 * Classe d'affichage de la vue en vignette. Elle est plus petite et contient
 * le menu.
 * @author Renaud
 * @author Simon
 */
public class Fenetre extends JFrame {

	private static final long serialVersionUID = 1L;
	
	private Dimension taille_tab;
	private Dimension taille_vignette;

	public static final int LARGEUR = 600;
	public static final int HAUTEUR = 800;
	
	public static final int VIGNETTE_LARGEUR = 100;
	public static final int VIGNETTE_HAUTEUR = 100;
	
	//public static final int LARGEUR = Toolkit.getDefaultToolkit().getScreenSize().width;
	//public static final int HAUTEUR = Toolkit.getDefaultToolkit().getScreenSize().height;
	

	
	private Menu menu;
	private PanelVignetteOptions panelVignetteOptions;
	private Tab tabs;
	
	/**
	 * Constructeur de la fenetre de l'applicaiton. Contient le menu, les tabs et 
	 * le panel avec les bouttons et le thumbnail
	 * @param c
	 * @param modele
	 */
	public Fenetre(Controleur c, Modele modele) {
		
		this.menu = new Menu(c);
		this.taille_tab = new Dimension(LARGEUR,630);
		this.taille_vignette = new Dimension(VIGNETTE_LARGEUR, VIGNETTE_HAUTEUR);
		
		//taille du cadre
		this.setSize(LARGEUR,HAUTEUR);
		
		//ajout d'un layout de type Border pour gerer les JPanel
		this.getContentPane().setLayout(new BorderLayout());
		
		this.tabs = new Tab(modele, taille_tab, c);
		this.panelVignetteOptions = new PanelVignetteOptions(modele, taille_vignette, c);
	
		
		//taille des composants dans le layout
		this.panelVignetteOptions.setPreferredSize(taille_vignette);
		this.tabs.setPreferredSize(taille_tab);
		
		//indique comment placer les composants selon les specifications
		//du BorderLayout
		this.getContentPane().add(panelVignetteOptions, BorderLayout.PAGE_START);
		this.getContentPane().add(tabs, BorderLayout.CENTER);
		
		this.panelVignetteOptions.setVisible(true);
		this.tabs.setVisible(true);
		
		//ajout de la l'objet panelVignette comme observateur de l'image
		modele.getImage().addObserver(this.panelVignetteOptions);
	
		this.setJMenuBar(menu);
		this.setVisible(true);
		
		//Place la fenetre au centre de l'ecran
		this.setLocationRelativeTo(null);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
	}
	
}
